/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package rfid;

import java.util.Properties;
import javax.swing.JTextField;

/**
 *
 * @author xandru
 */
public class Asociador implements RFIDEventListener{
    Properties asociaciones;
    String tagActual;
    boolean ok=false;
    String error;
    JTextField tagText;


    public Asociador(JTextField t) {
        asociaciones=new Properties();
        tagActual="";
        tagText = t;

    }

    public void onNewTag(RFIDTagEvent e) {
        String tagAsociado = asociaciones.getProperty(e.getTagData().getEPCParameter().toString());
System.out.println("onNewTag 1 tagActual= "+ tagActual);
        if (tagAsociado!=null)
        {
            ok = false;
            error = "EL TAG YA ESTA ASOCIADO";
            System.out.println("Error onNewTag " + error);
            return;
        }

        if (tagActual.equals(""))
        {
            tagActual=e.getTagData().getEPCParameter().toString();
            ok=true;
            tagText.setText( tagActual );
System.out.println("onNewTag 2 tagActual= "+ tagActual);
        }
        else {
            error="DOS TAGS LEIDOS SIN ASOCIAR";
            ok=false;
            System.out.println("Error onNewTag " + error);
            tagText.setText("");
            tagActual="";
        }

    }

    public void onUpdateTag(RFIDTagEvent e) {
        /*
        String tagAsociado = asociaciones.getProperty(e.getTagData().getEPCParameter().toString());

        if (tagAsociado!=null)
        {
            ok = false;
            error = "EL TAG YA ESTA ASOCIADO";
            return;
        }
         * 
         */
    }



    public String getError()
    {
      return error;
    }



    boolean asociarDorsal(JTextField textChip, JTextField textDorsal) {
         if (ok){
            asociaciones.setProperty(textChip.getText(), textDorsal.getText());
            tagActual="";
            textChip.setText("");
            textDorsal.setText("");

            return true;
        }
        else return false;
    }


    public Properties getAsociaciones()
    {
        return asociaciones;
    }

    void setAsociaciones(Properties p) {
        asociaciones = p;
    }

}
